System and method for presenting comparisons of electronic documents

ABSTRACT

Changes identified between two electronic documents are grouped according to the category of the identified change, and the categorized changes are grouped and displayed to a user. Additionally, each change is assigned a review state that can be updated to reflect the status of each change as the user reviews the changes in a comparison document.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Application No. 61/417,858 entitled SYSTEM AND METHOD FOR PRESENTING COMPARISONS OF ELECTRONIC DOCUMENTS, filed Nov. 29, 2010, and is hereby incorporated by reference in its entirety.

This patent application is related to the technologies described in the following patents and applications, all of which are incorporated herein in their entireties:

-   U.S. Provisional Application No. 61/417,853, entitled METHODS AND     SYSTEMS FOR MONITORING DOCUMENTS EXCHANGED OVER EMAIL APPLICATIONS,     filed Nov. 29, 2010; and -   U.S. Provisional Application No. 61/417,855, entitled METHODS AND     SYSTEMS FOR MONITORING DOCUMENTS EXCHANGED OVER EMAIL APPLICATIONS,     filed Nov. 29, 2010; and -   U.S. Provisional Application No. 61/417,869, entitled SYSTEM AND     METHOD FOR PROVIDING A COMMON FRAMEWORK FOR REVIEWING COMPARISONS OF     ELECTRONIC DOCUMENTS, filed Nov. 29, 2010.

TECHNICAL FIELD

The present disclosure generally relates to presentation to a reviewer of changes found in a comparison of electronic documents.

BACKGROUND

Electronic documents, such as word processing documents, spreadsheets, and presentations, often undergo multiple revisions or are co-authored by multiple people who make changes to previous versions of the document. When two versions of a document are compared, the changes are typically reviewed by an individual who is skilled in the relevant field prior to accepting the changes in the latest version.

SUMMARY

Systems and methods for presenting changes identified between two electronic documents in a manner that assists rapid review of the changes are disclosed. Each identified change is assigned an initial review state. As a user reviews the changes, the review state can be updated to reflect the status of each change, for example, reviewed and accepted, reviewed and rejected, or reviewed but needs further discussion.

Further, the identified changes are grouped according to the category of the identified change. In one embodiment, categories of changes can include trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes. The changes are displayed to the user for review in a hierarchical manner, according to the type of change. Additionally, each type of review state can be associated with an icon for easy identification by the reviewer.

This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used to limit the scope of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

Examples of an electronic document comparison system and method are illustrated in the figures. The examples and figures are illustrative rather than limiting. The electronic document comparison system and method are limited only by the claims.

FIGS. 1A-1C show views of changes identified between documents as presented by a conventional document comparison program. The views include a a simple list of changes and a redlined version of the changes.

FIG. 2A shows a general environment in which a document comparison application can be implemented.

FIG. 2B shows a block diagram illustrating an example of a computer used to run a document comparison application for comparing two electronic documents.

FIG. 3 depicts a block diagram illustrating example functional modules of one embodiment of a processor or server used to run a document comparison application.

FIGS. 4A-4C depict a flow diagram illustrating an example process of identifying and displaying changes between two documents, according to one embodiment.

FIGS. 5A and 5B show a change summary view and redlined view, according to one embodiment.

DETAILED DESCRIPTION

Various aspects and examples of the invention will now be described. The following description provides specific details for a thorough understanding and enabling description of these examples. One skilled in the art will understand, however, that the invention may be practiced without many of these details. Additionally, some well-known structures or functions may not be shown or described in detail, so as to avoid unnecessarily obscuring the relevant description.

The terminology used in the description presented below is intended to be interpreted in its broadest reasonable manner, even though it is being used in conjunction with a detailed description of certain specific examples of the invention. Certain terms may even be emphasized below; however, any terminology intended to be interpreted in any restricted manner will be overtly and specifically defined as such in this Detailed Description section.

Conventionally, document comparison tools compare an earlier version of a document with a later updated version of the document to generate a redlined comparison document. Typically, redlined deletions in the comparison document are indicated by a cross-out and redlined additions are indicated with underlining, although other conventions can be used. Further, conventional document comparison programs can also provide a simple listing of the differences between the two documents. FIG. 1A shows a screen-shot from a conventional document comparison program that provides the redlined version on the right side and the list of changes on the left side. FIG. 1B shows a close-up of the list of changes, and FIG. 1C shows a close-up of the redlined document. With both the redlined comparison document and the simple list of the changes, a reviewer needs to read and understand each change to determine its importance. Generally, the greater the number of changes in the document, the longer it will take to review the entire document. For a large document, there may be several hundred or even several thousand changes between two versions of the document, resulting in a time-consuming review process.

The techniques described in this disclosure can be implemented to categorize the changes and display the categorized changes in a manner that allows the user to review the changes rapidly. In addition, the document comparison application disclosed herein maintains a list of which changes have been reviewed, thus allowing the user to focus attention on the changes that have not been previously reviewed.

FIG. 2A depicts a general environment 200A in which a document comparison application can be implemented. Example client devices 202, 203, plurality of document comparison servers 205A-N, and document database 204 are coupled to a network 201. Although there can be many client devices and document databases coupled to the network 201, for clarity, only two example client devices 202, 203 and one document database 204 are shown.

The network 201 can be a telephonic network, an open network, such as the internet, or a private network, such as an intranet and/or the extranet. The network 201 can be any collection of distinct networks operating wholly or partially in conjunction to provide connectivity to the client devices and servers, and can appear as one or more networks to the serviced systems and devices.

Client devices 202, 203 can be any system, device, and/or any combination of devices/systems that is able to establish a connection with another device, a server and/or other systems. The client devices 202, 203 typically include display or other output functionalities to present data exchanged between the device and a user. For example, the client devices may be, but are not limited to, a server, a desktop computer, a computer cluster, a mobile computing device such as a notebook, a laptop computer, a handheld computer, a mobile phone, a smart phone, a PDA, a BlackBerry™ device, and/or an iPhone, etc.

Client device 202 has a processor accessible locally that can run the document comparison application. Thus, client device 202 only needs to connect the network 201 to access documents and data stored in document database 204, if needed. In some embodiments, the documents to be compared and data pertaining to the comparison of documents are stored in a memory, e.g. a hard disk, on client device 202 such that client device 202 does not need a network connection to access any documents or data.

Client device 203 does not have its own local document comparison application processor. Thus, client device 203 would access the document comparison application available at one or more of the document comparison servers 205A-N to request comparisons of electronic documents.

The document comparison application servers 205A-N can be any combination of software agents and/or hardware modules for running the document comparison application, either individually or in a distributed manner with other document comparison application servers 205A-N. The document comparison application servers 205A-N are able to communicate with client device 203 to receive electronic documents or locations of electronic documents to be compared. The electronic documents can be stored and retrieved in the document database 204 via the network 201. The document comparison application servers 205A-N are also able to present the identified changes between two documents in a manner that allows a user to review the changes rapidly, as disclosed herein.

In one embodiment, the plurality of document comparison servers 205A-N can stream data over the network to the client devices. For example, the changes identified between multimedia documents can be streamed over the network 201 to the client device 203.

The document database 204 can store information such as electronic documents and data associated with compared electronic documents, such as review states of identified differences between two documents. Document database 204 can be managed by a database management system (DBMS), for example but not limited to, Oracle, DB2, Microsoft Access, Microsoft SQL Server, PostgreSQL, MySQL, FileMaker, etc.

FIG. 2B depicts a block diagram 200B illustrating an example of a computer 280 used to run a document comparison application for comparing two electronic documents. The computer can include the following components: one or more processors 210, memory units 220, input devices 230, an output device 240, and a network interface 260. The components of the computer 280 are coupled to a bus 250 that allows communications among the elements.

The processor 210 can be used to run the document comparison application. The memory 220 can include but is not limited to, RAM, ROM, and any combination of volatile and non-volatile memory. The memory 220 can store the document comparison application. In one embodiment, the memory 220 can store comparison documents, categorized changes, and review states of the changes.

The input device 230 can include, but is not limited to, triggers to start and stop the document comparison application or to initiate other application functions. The output device 240 can be, but is not limited to, a display.

The network interface 260 can be one or more networking devices that enable the processor 210 to mediate data in a network 290 with an entity that is external to the computer 280, for example a network adaptor card or a wireless network interface card.

In one embodiment, the computer 280 can communicate through the network interface 260 via the network 290 with a document database 270. The document database 270 can be used to store documents to be compared, comparison documents, categorized changes, and review states of the changes. The review states of changes in a comparison document can be stored within the comparison document as metadata. Alternatively or additionally, the review states can be stored in a separate file or even a separate database. Independent of the location in which the review states are stored, when a comparison document is re-opened by the original reviewer or another user, the review states are recalled from the storage location and presented to the current user to aid in quickly reviewing the changes in the document.

FIG. 3 depicts a block diagram 300 illustrating example functional modules of one embodiment of a comparison processor or server 305 used to run a document comparison application. The comparison processor or server 305 can include the following modules: a document comparison module 310, a review state module 320, and a categorization module 330, and a user interface module 340.

The document comparison module 310 can be any combination of software agents and/or hardware components able to access a first document and a second document for performing a comparison to identify changes between the two documents. The documents can be any type including, but not limited to, text documents, spreadsheets, and slideshow and multimedia presentations. In some embodiments, the document comparison application can receive a comparison document that already has a list of changes identified between the two documents rather than performing the comparison to identify the changes.

The categorization module 330 can be any combination of software agents and/or hardware components able to group the changes identified in the comparison document into one or more categories. By categorizing the changes, a long list of changes is broken down into sub-lists by category so that a reviewer can quickly focus on a single type of change, thereby increasing the reviewer's productivity. Additionally, a reviewer can rapidly discern whether a change is critical to the content of the document or whether the change is not likely to effect the meaning of the document and can be either ignored or cursorily reviewed. Non-limiting examples of categories that can be used by the categorization module 330 include trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, missing placeholder changes, and other changes. These categories of changes are described in more detail below.

Trivial changes are changes that are not likely to affect the meaning of the document and can be either ignored or quickly reviewed. Examples of trivial changes include, but are not limited to, changes to white space characters (e.g., removing double spaces, inserting or removing additional paragraph breaks, etc.), spelling corrections (e.g., single word replacements where the word being replaced is similar to the replacement word, or the replacement is a dictionary word and the word being replaced is not), numbering changes (e.g., changes to *list numbering* of paragraphs, etc.), punctuation changes (e.g., insertion or deletion of punctuation marks or replacement of punctuation marks), capitalization changes, and reference numbering or symbol changes (e.g., changes to the numbers or letters used to reference footnotes and endnotes).

Matching changes are changes where the same or similar insertion, deletion, or replacement is made in multiple places within the document. Matching changes are shown in groups so that the reviewer can approve all instances of a change with a single action. Similar changes can be considered to be matching

Potentially missing changes are missing changes that are closely related to matching changes. In one example, a text string is repeatedly deleted or replaced throughout a comparison. Then locations where a text string remains unchanged should be flagged for inspection as the text may have been mistakenly left unchanged. For instance, in a comparison where the text “ACME Ltd.” has been replaced by “MegaBank Corporation” in 20 locations, the three remaining locations where “ACME Ltd.” remains unaltered would each be flagged as a potentially missing change.

Unexpected changes are also closely related to matching changes. However, rather than having a text string that has been left unchanged in a small number of instances, the text string has been changed to an altogether different text string. Continuing with the above example, the text string “ACME Ltd.” has been changed to “Commerce Bank Ltd.” These changes do not follow the majority pattern established by the 20 replacements with “MegaBank Corporation”, so the instances of “Commerce Bank Ltd.” would be flagged as unexpected changes for special attention by the reviewer.

Unexpected boilerplate changes arise if the user or administrator specifies blocks of boilerplate text that should not be edited, and the application identifies that a change has occurred within the boilerplate text. Unauthorized changes in the boilerplate text are flagged as unexpected boilerplate changes.

Missing placeholder changes indicate that the user or administrator has specified blocks of placeholder text that should always be changed. Instances where placeholder text has not been changed are flagged as a missing change.

Different names for the above categories of changes can be selected by the application administrator or by a user. Furthermore, the changes described above do not include all possible categories of changes. Different types of documents can have categories of changes particular to that document type. For example, for a comparison of slideshow presentations, differences in formatting and symbol types may not be considered a trivial change. An administrator or user can define one or more custom categories of changes to be added to the above list. Alternatively or additionally, a user can specify only particular ones of the category of changes to be included in categorizing changes.

In one embodiment, some categorization of changes relies on spellchecking technologies. Because specialized industries can often use specialized vocabulary, the application can provide a mechanism for users or administrators to specify a custom dictionary of technical words.

In one embodiment, some industries or users can consider that the categories of changes described under “trivial changes” may not actually be trivial. For example, under some circumstances, changes of punctuation may be important. The application can allow users or administrators to specify which types of changes are categorized as trivial.

Once the changes have been categorized, the changes can be presented to the user on the display in a change summary view where the changes are shown in an outline format or hierarchically according to the category of change. FIG. 5B shows an example of a change summary view. Below the word “changes” shown in the top line, each major category of change is shown indented at a first sub-level. If one of the major categories can be divided up into sub-categories, the sub-categories at shown indented at a second sub-level. For example, as shown in FIG. 5B, the major category “trivial changes” can be broken down into spelling corrections, list numbering changes, punctuation changes, capitalization changes, and footnote numbering changes. Each listing or sublisting of category of changes includes the number of that type of change in parentheses. In one embodiment, the categories of changes can be listed from top to bottom according to importance as specified by a user.

The review state module 320 can be any combination of software agents and/or hardware components able to assign an initial review state to each change identified in a comparison document and update the review state to reflect the status of each change as a user reviews the comparison document. Each type of review state should be easily distinguishable from the other review states so that a reviewer can quickly identify the review states that may need attention. Alternatively or additionally, each type of review state can have a symbol associated with it to further provide a visual indication for catching the reviewer's eye to facilitate reviewing the comparison document.

In one embodiment, the initial review state can be “unreviewed” and changes can be shown as bold text in the change summary view. Other review states that can be used to facilitate the user's review of the changes include, but are not limited to “reviewed and accepted”, “reviewed and rejected”, and “reviewed but needs further discussion”. Alternative names can be selected for the review states and additional custom review states can be created by the user. In one example, as shown in FIG. 5B, changes that have been tagged as “reviewed and accepted” can be shown with a tick in the margin in the redline view and shown in normal text in the change summary view; changes that have been tagged as “reviewed and rejected” can be shown with a cross in the margin in redline view and shown with a cross adjacent to the change in the change summary view; and changes that have been tagged as “reviewed but needs discussion” can be shown with an exclamation mark in the margin in redline view and also in the change summary view. It will be recognized that any type of symbol, font, font style, color, or special effect can be used to differentiate the status of the review states.

In one embodiment, the review state module 320 can automatically update the review state for one or more changes when certain criteria have been met. For example, the user can configure the document comparison application to automatically update the review state of a change from “unreviewed” to “reviewed, accepted” if the particular change has been shown to the user in the redline view in the display for a pre-set amount of time. In one embodiment, the user can select the amount of time when configuring the application to automatically update the review states.

In some embodiments, the document comparison application can include a user interface module 340. The user interface module 340 can be any combination of software agents and/or hardware components able to provide a way for a user to manually update the review state for any selected change. In one embodiment, the user interface can provide a button for the user to click on to select a particular review state. In one embodiment, the user interface can provide a context menu. Other types of user interfaces can also be used.

Because unreviewed changes may be of the most interest to a reviewer, in one embodiment, the user interface module 340 can provide buttons or any other method for a user to jump to the next and/or previous unreviewed change from the user's current location in the redline view.

FIGS. 4A-4C depict a flow diagram illustrating an example process 400 of identifying and displaying changes between two documents, according to one embodiment.

At blocks 405 and 410, the system receives locations of two documents to be compared and accesses those documents. Typically, the two documents are an earlier version and a later version of the same document that has been edited by one or more persons. The two versions of the documents can be stored in a document database accessible by the processor running the document comparison application. Alternatively, the documents can be stored in a local memory.

At block 415, the system compares the two versions of the documents to identify changes between the documents. The comparison can be performed on a character-by-character basis or a section-by-section basis. A person of skill in the art will recognize that a variety of techniques are known for comparing two documents to identify changes. A comparison document can be generated based on the identified changes. In one embodiment, if the document comparison application is an add-in application to another program that has already compared the two documents, the changes can be accessed by the document comparison application without having to repeat the comparison.

Once the changes between the two documents have been identified, at block 420 the system assigns each identified change an initial review state, for example, “unreviewed”. Other review states that can be assigned to the changes during the review process include, but are not limited to, “reviewed, accepted”, “reviewed, rejected”, and “reviewed, needs further discussion”.

At block 430, the system categorizes each of the changes. Examples of categories that can be used to group changes in the document were discussed above.

At block 435, the system displays or updates the display of the identified changes in a change summary view and/or a redline view. In one embodiment, the application can provide a user interface for the user to select the view or views to be shown in the display. FIG. 5A shows the change summary view on the left side and the redline view on the right side.

At decision block 440, the system determines if it has received a command from the user to close the document comparison application, for example after the user has finished reviewing the changes. If the user is done (block 440—Yes), at block 445 the system stores the comparison document and the current review state of each change. The review states can be stored within the comparison document as metadata, in a separate file of review states, or in the document database.

The process proceeds to decision block 480 where the system determines if a command to re-open the comparison document has been received. If the system does not receive the re-open command (block 480—No), the system waits at decision block 480 until a re-open command has been received. If a re-open command is received, at block 482 the system fetches the stored comparison document and the review states that were stored at block 445.

Then at block 484, the system re-opens the comparison document with the stored review states and returns to block 435 to display the changes.

Returning to decision block 440, if the user is not done with the document comparison application (block 440—No), the process continues to decision block 460 where the system determines if manual updates to the review states of any changes have been entered by the user. As discussed above, manual updates can be entered by a user through the user interface. If manual updates are received (block 460—Yes), the system makes the appropriate updates to the review state of the selected changes.

If manual updates have not been received (block 460—No), the process continues to decision block 465 where the system determines if automatic update criteria have been met. If the automatic update criteria have been met (block 465—Yes), at block 467 the system makes the appropriate updates to the review state of the appropriate changes. The process then returns to block 435. If the automatic update criteria have not been met (block 465—No), the process returns to block 435.

In one embodiment, the document comparison application can be an add-in or extension application to a master application that is used to edit the files that are compared by the document comparison application. For example, for comparison of text documents, the document comparison application can be an add-in to the Microsoft® Word software package. In this case, the document comparison application can display the change summary and redline views alongside the normal Microsoft® Word editing view.

Unless the context clearly requires otherwise, throughout the description and the claims, the words “comprise,” “comprising,” and the like are to be construed in an inclusive sense (i.e., to say, in the sense of “including, but not limited to”), as opposed to an exclusive or exhaustive sense. As used herein, the terms “connected,” “coupled,” or any variant thereof means any connection or coupling, either direct or indirect, between two or more elements. Such a coupling or connection between the elements can be physical, logical, or a combination thereof. Additionally, the words “herein,” “above,” “below,” and words of similar import, when used in this application, refer to this application as a whole and not to any particular portions of this application. Where the context permits, words in the above Detailed Description using the singular or plural number may also include the plural or singular number respectively. The word “or,” in reference to a list of two or more items, covers all of the following interpretations of the word: any of the items in the list, all of the items in the list, and any combination of the items in the list.

The above Detailed Description of examples of the invention is not intended to be exhaustive or to limit the invention to the precise form disclosed above. While specific examples for the invention are described above for illustrative purposes, various equivalent modifications are possible within the scope of the invention, as those skilled in the relevant art will recognize. For example, while text documents are mentioned, any type of electronic document may be processed under the principles disclosed herein. While processes or blocks are presented in a given order in this application, alternative implementations may perform routines having steps performed in a different order, or employ systems having blocks in a different order. Some processes or blocks may be deleted, moved, added, subdivided, combined, and/or modified to provide alternative or subcombinations. Also, while processes or blocks are at times shown as being performed in series, these processes or blocks may instead be performed or implemented in parallel, or may be performed at different times. Further any specific numbers noted herein are only examples. It is understood that alternative implementations may employ differing values or ranges.

The various illustrations and teachings provided herein can also be applied to systems other than the system described above. The elements and acts of the various examples described above can be combined to provide further implementations of the invention.

Any patents and applications and other references noted above, including any that may be listed in accompanying filing papers, are incorporated herein by reference. Aspects of the invention can be modified, if necessary, to employ the systems, functions, and concepts included in such references to provide further implementations of the invention.

These and other changes can be made to the invention in light of the above Detailed Description. While the above description describes certain examples of the invention, and describes the best mode contemplated, no matter how detailed the above appears in text, the invention can be practiced in many ways. Details of the system may vary considerably in its specific implementation, while still being encompassed by the invention disclosed herein. As noted above, particular terminology used when describing certain features or aspects of the invention should not be taken to imply that the terminology is being redefined herein to be restricted to any specific characteristics, features, or aspects of the invention with which that terminology is associated. In general, the terms used in the following claims should not be construed to limit the invention to the specific examples disclosed in the specification, unless the above Detailed Description section explicitly defines such terms. Accordingly, the actual scope of the invention encompasses not only the disclosed examples, but also all equivalent ways of practicing or implementing the invention under the claims.

While certain aspects of the invention are presented below in certain claim forms, the applicant contemplates the various aspects of the invention in any number of claim forms. For example, while only one aspect of the invention is recited as a means-plus-function claim under 35 U.S.C. §112, sixth paragraph, other aspects may likewise be embodied as a means-plus-function claim, or in other forms, such as being embodied in a computer-readable medium. (Any claims intended to be treated under 35 U.S.C. §112, ¶ 6 will begin with the words “means for.”) Accordingly, the applicant reserves the right to add additional claims after filing the application to pursue such additional claim forms for other aspects of the invention. 

1. A system, comprising: a display; at least one memory component storing a software program, changes between documents, and a review state of each change; at least one input device; a processor coupled among the display, the at least one memory component, and the at least one input device, wherein the processor is configured to execute the software program, the software program comprising: a comparison module operable to compare two documents for changes and to store a resulting comparison document with the changes in the at least one memory component; a review state module operable to assign and update the review state of each of the changes and to store the review states in the at least one memory component; a categorization module operable to categorize each of the changes according to a plurality of categories, wherein the display shows a first view of at least a portion of the changes organized according to the plurality of categories; a user interface module operable to receive changes to review states from a user using the at least one input device.
 2. A system, comprising: a display; at least one memory component storing a software program; a processor coupled among the display and the memory component, wherein the processor is configured to execute the software program, the software program comprising: a communication module operable to receive a list of changes between two documents; a categorization module operable to categorize each of the changes according to a plurality of categories; wherein the display shows a first view of at least a portion of the changes organized according to the plurality of categories.
 3. The system of claim 2, wherein the software program further comprises a review state module operable to assign and update a review state for each of the changes and to store the review states in the at least one memory component, and wherein the at least one memory component further stores a review state for each change.
 4. The system of claim 2, wherein the system further shows a second view of the changes in a context of the comparison document.
 5. The system of claim 2, wherein the system further comprises at least one input device, and further wherein the software program further comprises a user interface module operable to receive changes to review states from a user using the at least one input device.
 6. The system of claim 2, wherein updating the review state occurs automatically when a particular change has been visible on the display in the first view for a predetermined period of time.
 7. The system of claim 2, wherein a review state is selected from a group consisting of: unreviewed, reviewed and accepted, reviewed and rejected, and reviewed and needs further discussion.
 8. The system of claim 7, wherein each of the different review states in the group has a different symbol associated with it and an appropriate symbol is shown near the changes in the first view.
 9. The system of claim 2, wherein the plurality of categories comprises trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes.
 10. The system of claim 2, wherein a user defines a one or more of the plurality of categories.
 11. The system of claim 2, wherein the software program further comprises a comparison module operable to compare two documents for changes and to store a resulting comparison document with the changes in the at least one memory component;
 12. The system of claim 11, wherein the comparison module is further operable to store the comparison document in the at least one memory component, and further wherein the review state for each change is stored within the comparison document as metadata.
 13. A computer-implemented method of presenting a comparison of electronic documents, comprising: identifying changes between two documents or receiving changes identified between two electronic documents; categorizing the changes according to a plurality of categories; displaying at least a portion of the changes in a first view, wherein the changes are grouped hierarchically by the plurality of categories.
 14. The method of claim 13, further comprising: assigning an initial review state to each change; updating the initial review state responsive to user input or automatically according predetermined criteria.
 15. The method of claim 14, wherein the predetermined criteria comprises displaying the change for a prespecified period of time.
 16. The method of claim 14, wherein the initial review state is updated to a second review state selected from a group consisting of reviewed and accepted, reviewed and rejected, and reviewed and needs further discussion.
 17. The method of claim 14, further comprising storing the review states associated with the changes.
 18. The method of claim 17, wherein storing the review states comprises storing the review states within the comparison document as metadata.
 19. The method of claim 13, further comprising displaying next to the first view a redlined view of a comparison document containing the identified changes.
 20. The method of claim 13, wherein the computer implemented method is part of an add-in or extension to a master application program.
 21. The method of claim 13, wherein the plurality of categories comprises trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes.
 22. A computer-readable medium encoded with processing instructions for implementing a method performed by a computer, the method comprising: identifying changes between two documents or receiving changes identified between two electronic documents; categorizing the changes according to a plurality of categories; displaying at least a portion of the changes in a first view, wherein the changes are grouped using the plurality of categories.
 23. The computer-readable medium of claim 22, further comprising: assigning an initial review state to each change; updating the initial review state responsive to user input or automatically according predetermined criteria.
 24. The computer-readable medium of claim 23, wherein the predetermined criteria comprises displaying the change for a prespecified period of time.
 25. The computer-readable medium of claim 23, wherein the initial review state is updated to a second review state selected from a group consisting of reviewed and accepted, reviewed and rejected, and reviewed and needs further discussion.
 26. The computer-readable medium of claim 22, further comprising storing the review states associated with the changes.
 27. The computer-readable medium of claim 26, wherein storing the review states comprises storing the review states within the comparison document as metadata.
 28. The computer-readable medium of claim 22, further comprising displaying next to the first view a redlined view of a comparison document containing the identified changes.
 29. The computer-readable medium of claim 22, wherein the computer implemented method is part of an add-in or extension to a master application program.
 30. The computer-readable medium of claim 22, wherein the plurality of categories comprises trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes.
 31. A system, comprising: a communications module operable to receive two documents for comparison or locations where the two documents are stored; a comparison module operable to compare the two documents to identify changes; a categorization module operable to categorize each of the changes according to a plurality of categories, wherein the communications module is further operable to transmit the comparison document and the categorized changes to a display to show a first view of at least a portion of the changes organized according to the plurality of categories.
 32. The system of claim 31, further comprising: a review state module operable to assign and update a review state to each of the changes, wherein the communications module is further operable to transmit the review states to the display to show with the first view.
 33. The system of claim 31, wherein the plurality of categories comprises trivial changes, matching changes, potentially missing changes, unexpected changes, unexpected boilerplate changes, and missing placeholder changes.
 34. The system of claim 32, further comprising a memory component, wherein the comparison module stores a resulting comparison document with the changes in the memory component, and further wherein the review state module stores the review states in the memory component.
 35. The system of claim 32, wherein the communications module is further operable to stream the comparison document, categorized changes, or the review states to the display.
 36. The system of claim 32, wherein updating a review state comprises responding to user input or automatically based upon predetermined criteria.
 37. A computer-implemented method, comprising: identifying changes between two documents or receiving changes identified between the two documents; determining whether each of the changes is a potentially missing change; displaying at least a portion of a listing of the potentially missing changes.
 38. A computer-implemented method, comprising: identifying changes between two documents or receiving changes identified between the two documents; determining whether each of the changes is an unexpected change; displaying at least a portion of a listing of the unexpected changes.
 39. A computer-implemented method, comprising: identifying changes between two documents or receiving changes identified between the two documents; determining whether each of the changes is an unexpected boilerplate change; displaying at least a portion of a listing of the unexpected boilerplate changes.
 40. A computer-implemented method, comprising: identifying changes between two documents or receiving changes identified between the two documents; determining whether each of the changes is a missing placeholder change; displaying at least a portion of a listing of the missing placeholder changes.
 41. A system, comprising: a display; at least one memory component storing a software program and changes between documents; a processor coupled among the display and the memory component, wherein the processor is configured to execute the software program, the software program comprising: a change module operable to compare two documents for changes and to store a resulting comparison document with the changes in the at least one memory component or to receive a list of changes between two documents; an analysis module operable to determine whether each of the changes is a particular change; wherein the display shows a view of at least a portion of a listing of the particular changes.
 42. The system of claim 41, wherein the particular change is a potentially missing change.
 43. The system of claim 41, wherein the particular change is an unexpected change.
 44. The system of claim 41, wherein the particular change is an unexpected boilerplate change.
 45. The system of claim 41, wherein the particular change is a missing placeholder change. 